package com.huiminpay.transaction.api;

import com.huiminpay.common.cache.domain.BusinessException;
import com.huiminpay.paymentagent.dto.PaymentResponseDTO;
import com.huiminpay.transaction.dto.PayOrderDTO;
import com.huiminpay.transaction.dto.QRCodeDto;

/**
 * @ClassName: TransactionService
 * @Package: com.huiminpay.transaction.api
 * @Description: 交易订单相关接口
 * @Author 谢同学
 * @Create 2023/11/29 8:40
 * @Version 1.0
 */
public interface TransactionService {
    /**
     * 生成门店二维码
     * @param qrCodeDto 相关参数（merchantId,appId、storeid、channel、subject、body）
     * @return 支付入口URL，将二维码的参数组成json并用base64编码
     * @throws BusinessException
     */
    String createStoreQRCode(QRCodeDto qrCodeDto) throws BusinessException;

    /**
     * 支付宝订单保存
     * @param payOrderDTO 订单信息
     * @return
     * @throws BusinessException
     */
    PaymentResponseDTO submitOrderByAli(PayOrderDTO payOrderDTO) throws BusinessException;

    /**
     * 更新订单支付状态
     * @param tradeNo  惠民平台订单号
     * @param payChannelTradeNo 支付宝或微信的交易流水号
     * @param state  订单状态 交易状态支付状态,0‐订单生成,1‐支付中(目前未使用),2‐支付成功,4‐关闭 5‐‐失败
     */
    void updateOrderTradeNoAndTradeState(String tradeNo, String payChannelTradeNo, String state);
}
